#!/bin/bash
##linux内核优化脚本
#1. 优化文件系统读写速度，使用deadline调度器，可以提高磁盘I/O性能。
#2. 调整系统内存管理，减少交换分区使用，提高系统性能。
#3. 调整TCP参数，优化网络传输性能。
#4. 调整文件描述符限制，提高系统稳定性。
#5. 调整内核参数，优化系统性能和稳定性。
# 优化文件系统读写速度
echo "deadline" > /sys/block/sda/queue/scheduler

# 调整系统内存管理
echo "vm.swappiness = 10" >> /etc/sysctl.conf
echo "vm.dirty_ratio = 10" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio = 5" >> /etc/sysctl.conf
sysctl -p

# 调整TCP参数
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets = 720000" >> /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 8192" >> /etc/sysctl.conf
echo "net.core.somaxconn = 8192" >> /etc/sysctl.conf
sysctl -p

# 调整文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

# 调整内核参数
echo "kernel.pid_max = 65536" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmmax = 68719476736" >> /etc/sysctl.conf
echo "kernel.shmall = 4294967296" >> /etc/sysctl.conf
sysctl -p